# 复制整行： Ctrl + D
# 格式化：Ctrl + Alt + L
# 整体标注：Ctrl + /


# 算数运算符
"""
    +
    -
    *
    /
    %   --> a - a // b * b
    //  --> 返回商的整数部分
    **

"""

print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 % 3)

#  //-->返回商的整数部分(向下取整)
print(10 // 3)  # 3 < 3.3333~ < 4      -->  3
print(-10 // 3)  # -4 <-3.3333~ < -3   --> -4

print(10 ** 3)

#    %   --> a - a // b * b
print(10 % 3)  # 10 - 10 // 3 * 3 = 1
print(-10 % 3)  # -10 - (-10) // 3 * 3 = 2
print(-3 % 3)  # -3 - (-3) // 3 * 3 = 0

# exercise
# 1求余数
print("合" + str(97 // 7) + "星期" "\t" + str(97 % 7) + "天")

# 2华氏温度和摄氏温度的转换
t1 = 234.5  # 华氏温度
t2 = 5 / 9 * (t1 - 100)
print("摄氏温度为:" + str(t2))
print(f"摄氏温度为:{t2}")
print("摄氏温度为: %.2f" % (t2))

# 比较运算符
"""
    ==
    !=
    <
    >
    <=
    >=
    is      -->判断两个引用对象是否相同
    is not  -->判断两个引用对象是否不同
    
1.其结果为布尔值并且f要么为True，要么为False
比较表达式经常用在if结构的条件，为True就执行相应的语句，为False就不执行
"""

a1 = 10
a2 = 20

# 将a1和a2比较的布尔值赋给flag
flag = a1 > a2
print(flag)

print("is or is not")
if a1 is a2:
    print(a1)
if a1 is not a2:
    print(a2)

print("< >")
if a1 > a2:
    print(1)
# 因为判断的布尔值为False，因此不输出
if a1 < a2:
    print(2)

# 逻辑运算符
"""
and    a and b  --> 只要有一个值为0或者布尔值为假则返回0，否则返回and后面的值
or     a or b   --> 只要有一个值不为0或者布尔值不为假，则返回这个值
not    not a    --> 只要为假则返回真True

注意：0表示False 非0表示True

"""
print("----------前面四组布尔值一定是反的----------")
a1 = 10
a2 = 0

print(bool(a1 and a2))
print(bool(a1 or a2))
print(not (a1 and a2))
print(not (a1 or a2))
print(a1 and a2)
print(a1 or a2)
print(not a2)
print(not a1)

print(True and False)
print(True or False)

# 赋值运算符
"""
    =
    +=
    -=
    *=
    /=
    
    %=  
    **=
    //=

"""
a1 = 10
a2 = 20

print("==========")
a1 += a2
print(a1)
a1 -= a2
print(a1)
a1 *= a2
print(a1)
a1 /= 2
print(a1)  # 100.0自动转化为浮点型
a1 **= 2
print(a1)
a1 //= 2
print(a1)
a1 %= 2  # %   --> a - a // b * b
print(a1)

# x和y的值进行交换
x = 10
y = 20
# 方法一
print(f"交换前x:{x}, y:{y}")
x, y = y, x
print(f"交换后x:{x}, y:{y}")

# 方法二
print(f"交换前x:{x}, y:{y}")
x = int(x + y)
y = int(x - y)
x = int(x - y)
print(f"交换后x:{x}, y:{y}")

# 三元运算符

max = x if x > y else y
print(max)
min = x if x < y else y
print(min)

# exercise1
a1 = 10
a2 = 50
a3 = 80
print(f"{a1}, {a2}, {a3}")
max2 = a1 if a1 > (a2 if a2 > a3 else a3) else (a2 if a2 > a3 else a3)
print(max2)

# 键盘键入
age = input("请输入年龄：")
print(age)

# 键入的任何内容哦都是string类型
print(type(age))
